The throughput of a data processing system is to a large extent dependent on the system's ability to transfer data between peripheral storage devices and the central processing unit (CPU). The transfer path between a given storage device and the CPU usually involves a channel, a control unit and a controller. The control unit is generally a separate unit which is connected to a channel via a standard interface. The storage devices, i.e., disk files are generally arranged in a string consisting of a disk file controller and a group, usually 6 or 8, of disk files which are connected to the controller via a control interface. The controller in turn is connected to the control unit through another interface. An example of one such arrangement is the IBM 3830 Mod II control unit which connects to a System/360 or 370 central processing unit through a block multiplexor channel. The 3830 Mod II is used to connect one or more strings of disk storage devices, such as the Models 3330, 3340 or 3350 disk files, to the system.
The string consists of an A box comprising a controller and a disk drive. The controller is connected to the control unit by a standard IBM interface referred to as CTL interface and to the drives by another standard interface referred to as the file control interface or simply FCI.
The overall function of the controller is to interpret and execute orders or commands issued by the storage control unit. Execution of these orders involves controlling both interfaces, controlling the track format, clocking and serializing the data during a transfer of data to the file and deserializing the data during a transfer of data from the file, checking the integrity of the transferred data through appropriate error correcting hardware, furnishing to the control unit the status of the controller and each of the attached devices when requested and diagnostic evaluation of the system when an error occurs.
File controllers have been implemented using large scale integration circuit technology and on a cost basis appear very favorable provided there are never any changes or additions to the initial functions. It has been recognized however, that each time a change such as the addition of a new function, has to be made, one or more of the large scale integrated modules has to be redesigned. This process is expensive in both time and money and, therefore, increases the overall cost.
The obvious solution to the problem of inflexibility of LSI combinatorial logic is a microprocessor. The microprocessor, once it is designed, can be readily and rapidly changed to accommodate new functions by merely changing the microprogram and thus avoid the constraints of the LSI process.
However, when it becomes necessary to maintain a high data transfer rate between the controlled device and the unit issuing the commands, it becomes readily apparent that any microprocessor cannot be used. At data transfer rates in the range of 1.75 megabytes/second, commands must be decoded and responses generated by the controller within nanoseconds. Prior art microprocessors are either too expensive or too slow relative to combinatorial logic to cope effectively with these increased data transfer rates.
There is, therefore, a need for an improved lower cost controller which can interpret macro orders from the control unit at a speed which matches the data transfer rate, and control both interfaces such that a minimum of time is lost in establishing a connection between a selected file and the control unit, has the flexibility to work with a number of devices attached to the interfaces and can be rapidly synchronized with a disk file having a high data transfer rate.